package com.puzzlebazar.client.util;

public interface GridValidity {

	/**
	 * Make sure the provided location indicates a cell within the grid
	 * 
	 * @param loc The cell location to check
	 * @return true if it is within the grid, false otherwise 
	 */
	public boolean isValidCell(Vec2i loc);

	/**
	 * Make sure the provided location indicates a vertex within the grid
	 * 
	 * @param loc The vertex location to check
	 * @return true if it is within the grid, false otherwise 
	 */
	public boolean isValidVertex(Vec2i loc);

	/**
	 * Make sure the provided location indicates a vertical edge within the grid
	 * 
	 * @param loc The vertical edge location to check
	 * @return true if it is within the grid, false otherwise 
	 */
	public boolean isValidVerticalEdge(Vec2i loc);

	/**
	 * Make sure the provided location indicates a horizontal edge within the grid
	 * 
	 * @param loc The horizontal edge location to check
	 * @return true if it is within the grid, false otherwise 
	 */
	public boolean isValidHorizontalEdge(Vec2i loc);

	/**
	 * Make sure the provided rectangle of cells is within the grid
	 * 
	 * @param rect The rectangle to check (in width and height in cells)
	 * @return true if it is within the grid, false otherwise 
	 */
	public boolean isValidRect(Recti rect);

}
